/**
 * 通用接口的封装
 */
// 通用返回类型，对应后端的R类型 
export interface R<T> {
    code: string
    message: string
    data: T
}
// 分页结果,对应后端的分页VO
export interface PageVo<T> {
    //当前页码 
    currentPage: number
    //每页条数 
    pageSize: number
    // 总条数
    total: number
    // 数据列表 
    dataList: T[]
    // 总页数 
    pages: number
}

/**
 * 讲师接口的封装
 */
// 实际返回data的类型
// 注意：新增时id值由服务端自动生成，所以是可选的。另外id是超大整数，JavaScript有精度问题，所以使用 string表示。
export interface Teacher {
    id?: string
    name: string
    intro: string
    career: string
    level: number
    avatar: string
    sort: number
}


// 查询条件 注意：条件是可选的，所以变量名后面有个 ?
export interface TeacherQueryVo {
    name?: string
    level?: number
    beginDate?: string
    endDate?: string
}

/**
 * 科目接口的封装
 */
//实体对象
export interface Subject{
    id?: string
    title: string
    parentId: string
    career: string
    sort: number
}

//查询条件
export interface SubjectQueryVo{
    title?: string
    beginDate?: string
    endDate?: string 
}

/**
 * 科目接口的封装
 */
//实体对象
export interface Video{
    id?: string
    title: string
    //原始文件名
    videoOriginalName: string
    //封面
    url: string
    isFree: number
    //课程id,章节id
    courseId:string,
    chapterId:string,
    sort: number
}

//查询条件
export interface VideoQueryVo{
    title?: string
    beginDate?: string
    endDate?: string 
}
/**
 * 用户接口的封装
 */
// 登录表单的数据类型
export interface LoginForm {
    username: string;
    password: string;
    checkCode: string;
    autoLogin: boolean;
}
export interface User {
    username: string;
    password: string;
    nickName?: string;
    //头像
    salt?: string;
    
    token: string;
    id?: string;
}
    